<?php

/*
   *TestGuest Version1.0
   *=================================================
   *Copy 20 17-2018 xys
   *web:963908484
   *=================================================
   *Authur:xys
   *Date:2017-7-17
*/

//防止恶意调用
if (!defined('IN_TG')){
	exit('Access Denied!');
}

//
if (!function_exists('_alert_back')){
	exit('_alert_back()函数不存在，请检查');	
}
//
if (!function_exists('_mysql_string')){
	exit(' _mysql_string()函数不存在，请检查');
}




/*
 * _check_uniqid() 唯一标识符函数
 * @access publie
 * @param string $_first_uniqid 
 * @param string $_end_uniqid 
 * @return string 过滤后的唯一标识符
 */

function _check_uniqid($_first_uniqid,$_end_uniqid){
	
	if ((strlen($_first_uniqid)!=40)||($_first_uniqid!=$_end_uniqid)){
		_alert_back('唯一标识符异常');
	}
	return _mysql_string($_first_uniqid);
}


/*
 * _check_username 表示检测并过滤用户名
 * @access publie
 * @param string $_string 受污染的用户名
 * @param int $_min_num 最小位数
 * @param int $_max_num 最大位数
 * @return string 过滤后的用户名
 */

function _check_username($_string,$_min_num,$_max_num){
	//去掉两边的空格
	$_string = trim($_string);
	
	//长度小于两位或者大于20位
	if (mb_strlen($_string,'utf-8')<$_min_num||mb_strlen($_string,'utf-8')>$_max_num){
		_alert_back('长度不得小于'.$_min_num.'位或者不得大于'.$_max_num.'位');
	}
	
	//限制敏感字符
	$_char_pattern = '/[<>\'\"\ \	]/';
	if (preg_match($_char_pattern,$_string)){
		_alert_back('用户名不得包含敏感字符');
	}
	
	 //限制敏感用户名
	 $_mg[0]='xys';
	 $_mg[1]='cmm';
	 $_mg[2]='wy';
	 //告诉用户哪些不能注册
	 $_mg_string = "";
	 foreach ($_mg as $value){
	 	$_mg_string .= '['.$value.']'.'\n';
	 }
	 //这里使用绝对匹配
	 if (in_array($_string, $_mg)){
	 	_alert_back($_mg_string.'以上敏感用户名不得注册');
	 }
	 
	 //转义返回

	 return _mysql_string($_string);
}


/*
 * _check_passord 验证密码
 * @access publie
 * @param string $_first_pass 密码
 * @param string $_end_pass  确认密码
 * @param int $_min_num 最小位数
 * @return string $_first_pass 返回一个加密后的密码
 */

function _check_password($_first_pass,$_end_pass,$_min_num){
	//判断密码
	if (strlen($_first_pass)<$_min_num){
		_alert_back('密码不得小于'.$_min_num.'位！');
	}
	
	if ($_first_pass != $_end_pass){
		_alert_back('密码和确认密码不一致！');
	}
	

	//将密码返回(加密)
	return  _mysql_string(sha1($_first_pass));
}



/*
 * _check_question 返回密码提示
 * @access publie
 * @param string $_string 输入的密码提示
 * @param int $_min_num 最小位数
 * @param int $_max_num 最大位数
 * @return string $_string 返回密码提示
 */

 function _check_question($_string,$_min_num,$_max_num){
	
 	$_string = trim($_string);
	//长度不得小于两位或者大于20位
	if (mb_strlen($_string,'utf-8')<$_min_num||mb_strlen($_string,'utf-8')>$_max_num){
		_alert_back('密码提示不得小于'.$_min_num.'位或者不得大于'.$_max_num.'位');
	}
	
	//返回密码提示
    return _mysql_string($_string);
    //return $_string;
}


/*
 * _check_question 返回回答
 * @access publie
 * @param string $_ques 输入的密码提示
 * @param string $_answ 输入的密码提示
 * @param int $_min_num 最小位数
 * @param int $_max_num 最大位数
 * @return string $_answ 返回回答
 */

function _check_answer($_ques,$_answ,$_min_num,$_max_num){
	
	$_answ = trim($_answ);
	//长度不得小于两位或者大于20位
	if (mb_strlen($_answ,'utf-8')<$_min_num||mb_strlen($_answ,'utf-8')>$_max_num){
		_alert_back('密码回答不得小于'.$_min_num.'位或者不得大于'.$_max_num.'位');
	}
	
	//密码提示和回答不得一致
	if ($_ques == $_answ){
		_alert_back('密码提示和回答不得相同！');
	}
	
	//加密返回
	return  _mysql_string(sha1($_answ));
}


/*
 * _check_email 检测邮箱是否合法
 * @access publie
 * @param string $_string  提交的邮箱地址
 * @return string $_string 验证后的地址
 */

function _check_email($_string,$_min_num,$_max_num){
	
	//参考其中的一个邮箱 bnbbs@163.com 
	//[a-zA-Z0-9_]=>\w
	//[\w\-\.] 16.3.
	//\.[\w+]	
	if (empty($_string)){
		return null;
	}else {
	  if (!preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', $_string)){
		    _alert_back('邮件格式不正确!');
	  }
	   //长度
	   if (strlen($_string)<$_min_num||strlen($_string)>$_max_num){
		_alert_back('邮箱长度不得小于'.$_min_num.'位或者不得大于'.$_max_num.'位');
	   }
	}
	return  _mysql_string($_string);
}


/*
 * _check_sex性别
 * @access publie
 * @param string $_string  提交的性别
 * @return string $_string 转义后的性别
 */    
    
function _check_sex($_string){
	return _mysql_string($_string);
}  
    



/*
 * _check_sex头像
 * @access publie
 * @param string $_string  提交的头像
 * @return string $_string 转义后的头像
 */

function _check_face($_string){
	return _mysql_string($_string);
}




    
    
/*
 * _check_qq 检测邮箱是否合法
 * @access publie
 * @param int $_string  提交的qq
 * @return int $_string 验证后的qq
 */

function _check_qq($_string){
	if (empty($_string)){
		return null;
	}else {
		//123456
		if (!preg_match('/^[1-9]{1}[0-9]{4,9}$/', $_string)){
			_alert_back('qq号码不正确!');
		}	 
	}
	return $_string;
	
}



/*
 * _check_qq 网址验证
 * @access publie
 * @param int $_string  提交的网址
 * @return int $_string 验证后的网址
 */

function _check_url($_string,$_max_num){
	if (empty($_string)||($_string=='http://')){
		return null;
	}else {
		//http://www.yc60.com
		//？号表示0次或一次
		if (!preg_match('/^https?:\/\/(\w+\.)?[\w\-\.]+(\.\w+)+$/', $_string)){
			_alert_back('网址不合法!');
		}
		//长度
		if (strlen($_string)>$_max_num){
			_alert_back('网址太长！');
		}
	}
	return  _mysql_string($_string);

}






?>